package fuente;

import java.io.FileWriter;
import java.io.IOException;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

/**
 * Ejecuta un metodo estatico que Crea y guarda en un fichero, un 
 * archivo XML que contiene los datos básicos de un diseño creado por el usuario: 
 * descripcion, Nombre, Cantidad de entradas, Cantidad
 * de conexiones al VCC y al GND y las salidas del diseño.
 * @author Alexadre
 * @author Rodrigo
 * @author Gabriel
 * @author jeremy
 */
public class GuardarArchivo {
    
    /**
     * Crea el archvo XML a partir de los parametros de la imformacion
     * basica del diseño: nombre, descripcion, cantidad de entradas,
     * cantidad de conexiones al VCC, cantidad de conexiones al GND y 
     * salidas (tabla de verdad).
     * @param pNombre Nombre del diseño
     * @param pDescripcion Descrpcion breve a la hora de iniciar nuevo diseño
     * @param pCantEntradas Cantidad de entradas totales
     * @param pCantVCC Cantidad de conexiones al VCC
     * @param pCantGND Cantidad de conexiones al GND
     * @param pSalidas Cantidad de salidas totales del diseño
     */
    public static void GuardarArchivo(String pNombre, String pDescripcion, String pCantEntradas, String pCantVCC, String pCantGND, String pSalidas) {
        try {
            /* Escribir el XML */
            Element root = new Element("Diseño");
            
            
            Element nombre = new Element("Nombre");
            nombre.setText(pNombre);
            root.addContent(nombre);
            
            
            Element descripcion = new Element("Descripcion");
            descripcion.setText(pDescripcion);
            root.addContent(descripcion);
            
            
            Element entradas = new Element("CantidadEntradas");
            entradas.setText(pCantEntradas);
            root.addContent(entradas);
            
            
            Element VCC = new Element("VCC");
            VCC.setText(pCantVCC);
            root.addContent(VCC);
            
            
            Element GND = new Element("GND");
            GND.setText(pCantGND);
            root.addContent(GND);
            
            Element salidas = new Element("Salidas");
            salidas.setText(pSalidas);
            root.addContent(salidas);
            
            Document doc = new Document(root);
            
            /* Guardarlo */
            XMLOutputter xmlOutput = new XMLOutputter();
            
            xmlOutput.setFormat(Format.getPrettyFormat());
            xmlOutput.output(doc, new FileWriter(pNombre+".xml"));
            
            System.out.println("Archivo guardado!");
            
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }
    }
}
